/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jandan.persistence.iface;

import java.util.List;

import com.jandan.ui.model.Account;

/**
 * 账户数据访问接口
 * @author gong
 * @version 1.0
 * @see com.jandan.persistence.sqlmapdao.AccountSqlMapDao
 */
public interface AccountDao {
	/**
	 * 获取所有账户
	 * @return 账户列表
	 */
	List<Account> getAllAccountList();
	/**
	 * 获取某部分账户，<strong>用于分页</strong>
	 * @param start
	 * @param limit
	 * @return
	 */
	List<Account> getAllAccountList(int start,int limit);
	
	/**
	 * 根据用户ID获取某个用户的账户
	 * @param userID 用户ID
	 * @return 账户
	 */
	Account getAccountByUserID(long userID);
	
	/**
	 * 根据用户名获取某个账户
	 * @param userName 用户名
	 * @return 账户
	 */
	Account getAccountByUserName(String userName);
	
	/**
	 * 根据用户名和密码获取某个账户
	 * @param userName 用户名
	 * @param password 密码
	 * @return 账户
	 */
	Account getAccountByUserNameAndPassword(String userName,String password);
	
	/**
	 * 获取会员总数
	 * @return 会员总数目
	 */
	int getTotalAccountCount();
	
	/**
	 * 插入账户到数据库
	 * @param account 账户 
	 * @return 用户ID
	 */
	long insertAccount(Account account);
	
	/**
	 * 更新账户
	 * @param account 要更新的账户 
	 */
	void updateAccount(Account account);
	
	/**
	 * 删除账户
	 * @param userID 用户ID
	 */
	void deleteAccount(long userID);
}
